/*  本文件主要用来控制原生native的功能
/*  file   : /Users/arida/react-hrm-h5/src/utils/native
/*  author : zhipenglu
/*  date   : 2017-9-5 11:44:57
/*  last   : 2017-9-5 11:45:20
*/
// utils
import { setLeft } from "./dingtalk.js";

function pushHistory() {
  const currentHash = window.location.hash;
  history.pushState(
    "",
    "",
    `${currentHash}?control_back_time=${new Date().getTime()}`
  );
}
let backCB = null;
function noop() {}
module.exports = {
  /**
 * 控制左上角返回
 * @param {*} cb 
 */
  controlBack(cb) {
    backCB = cb || noop;
    if (!cb) {
      if (window.dd.android) {
        history.back();
      } else {
        setLeft({});
      }
    } else {
      if (window.dd.android) {
        // cb 不存在，表示解绑事件
        // 安卓的话，监听backbutton
        document.addEventListener(
          "backbutton",
          () => {
            backCB();
          },
          false
        );
        //add fake history
        pushHistory();
      } else {
        // IOS 使用js-api
        setLeft({
          onClick: () => {
            cb();
            // 只控制一次
            setLeft({});
          }
        });
      }
    }
  }
};
